

using System;
using Abp.Application.Services.Dto;
using Abp.Domain.Entities.Auditing;
using System.ComponentModel.DataAnnotations;
using Yozeev.BusinessLogic;
using System.Collections.Generic;

namespace Yozeev.BusinessLogic.Dtos
{
    public class ScheduleListDto : ByBranchEntityDto<Guid> 
    {
		/// <summary>
		/// ScheduleCode
		/// </summary>
		public string ScheduleCode { get; set; }



		/// <summary>
		/// SaleDate
		/// </summary>
		public DateTime SaleDate { get; set; }



		/// <summary>
		/// StartTime
		/// </summary>
		[Required(ErrorMessage="StartTime不能为空")]
		public DateTime StartTime { get; set; }



		/// <summary>
		/// EndTime
		/// </summary>
		[Required(ErrorMessage="EndTime不能为空")]
		public DateTime EndTime { get; set; }



		/// <summary>
		/// SeatQuantity
		/// </summary>
		[Required(ErrorMessage="SeatQuantity不能为空")]
		public long SeatQuantity { get; set; }



		/// <summary>
		/// SurplusQuantity
		/// </summary>
		[Required(ErrorMessage="SurplusQuantity不能为空")]
		public long SurplusQuantity { get; set; }



		/// <summary>
		/// ScheduleStatus
		/// </summary>
		public ScheduleStatusEnum ScheduleStatus { get; set; }



		/// <summary>
		/// AuditStatus
		/// </summary>
		public AuditStatusEnum AuditStatus { get; set; }



        /// <summary>
        /// 预留数
        /// </summary>
        public long ReserveQuantity { get; set; }



        /// <summary>
        /// Route
        /// </summary>
        public Route Route { get; set; }



		/// <summary>
		/// Boat
		/// </summary>
		public Boat Boat { get; set; }



		/// <summary>
		/// RouteId
		/// </summary>
		[Required(ErrorMessage="RouteId不能为空")]
		public Guid RouteId { get; set; }



		/// <summary>
		/// BoatId
		/// </summary>
		[Required(ErrorMessage="BoatId不能为空")]
		public Guid BoatId { get; set; }



		/// <summary>
		/// CheckStartTime
		/// </summary>
		public DateTime CheckStartTime { get; set; }



		/// <summary>
		/// CheckEndTime
		/// </summary>
		public DateTime CheckEndTime { get; set; }



        /// <summary>
		/// 销售类型
		/// </summary>
		public string TicketNames { get; set; }



		/// <summary>
		/// 票价ID列表
		/// </summary>
		public List<Guid> TicketIds { get; set; }
		/// <summary>
		/// 票价ID列表
		/// </summary>
		public List<TicketPriceListDto> TicketPrices { get; set; }

		public string SaleDateStr { get { return SaleDate.ToString("yyyy-MM-dd HH:mm:ss"); } }
        public string StartTimeStr { get { return StartTime.ToString("yyyy-MM-dd HH:mm:ss"); } }
        public string EndTimeStr { get { return EndTime.ToString("yyyy-MM-dd HH:mm:ss"); } }
        public string CheckStartTimeStr { get { return CheckStartTime.ToString("yyyy-MM-dd HH:mm:ss"); } }
        public string CheckEndTimeStr { get { return CheckEndTime.ToString("yyyy-MM-dd HH:mm:ss"); } }
        public string CreationTimeStr { get { return this.CreationTime.ToString("yyyy-MM-dd HH:mm:ss"); } }


		/// <summary>
		/// 标准仓数量
		/// </summary>
		public long StandardNum { get; set; }
		/// <summary>
		/// 标准仓剩余数
		/// </summary>
		public long StandardSurplusNum { get; set; }
		/// <summary>
		/// 标准仓预留数
		/// </summary>
		public long StandardReserveNum { get; set; }
		/// <summary>
		/// VIP仓数量
		/// </summary>
		public long VIPNum { get; set; }
		/// <summary>
		/// VIP仓剩余数
		/// </summary>
		public long VIPSurplusNum { get; set; }
		/// <summary>
		/// VIP仓预留数
		/// </summary>
		public long VIPReserveNum { get; set; }
		/// <summary>
		/// 包间数量
		/// </summary>
		public long CompartmentNum { get; set; }
		/// <summary>
		/// 包间剩余数量
		/// </summary>
		public long CompartmentSurplusNum { get; set; }
		/// <summary>
		/// 包间预留数
		/// </summary>
		public long CompartmentReserveNum { get; set; }
		/// <summary>
		/// 航班销售状态
		/// </summary>
		public ScheduleEnum ScheduleSaleStatus { get; set; }
		/// <summary>
		/// 预留票数备注
		/// </summary>
		public string Remark { get; set; }
	}
}